For shared storage, all hosts on a cluster may have access to the same data. Multiple hosts may attempt to read from or write to specific resources at the same time. This can create errors and cause the hosts to malfunction or crash due to unsynchronized resources. Accordingly, locking managers are used to assign locks (also known as leases) to individual hosts. This ensures that while a host with a lock is using a resource, another host will not be able to modify the resource. Additionally, lock managers may manage locks for other types of resources than shared storage.
Some locking mechanisms manage locks on resources using the storage domain that stored those resources. However such locking mechanisms typically only provide exclusive locks to the resources. One such locking mechanism is the Paxos protocol.